package modelo;
import java.util.Vector;
import java.util.Date;

import vista.DatosUsuario;

public class Factura {
	private Date fecha;
	private Usuario cliente;
	private float importe;
	private Vector<ItemFactura> items;
	private float medicionactual;
	private DatosUsuario datosCliente;
	private int nroFac;
	
	public Factura(Usuario c){
		this.cliente=c;
		this.items=new Vector<ItemFactura>();
		this.fecha=new Date();
		this.importe=0;
	}

	public Date getFecha() {
		return fecha;
	}

	public int getNroFac() {
		return nroFac;
	}

	public void setNroFac(int nroFac) {
		this.nroFac = nroFac;
	}

	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}

	public DatosUsuario getDatosUsuario() {
		DatosUsuario du=new DatosUsuario("");
		if(cliente instanceof UResidencial){
			du.setTipo("Residencial");
			UResidencial ur=(UResidencial)this.cliente;
			du.setAltura(ur.getAltura());
			du.setApellido(ur.getApellido());
			du.setCalle(ur.getCalle());
			du.setCodpost(ur.getCodpost());
			du.setDpto(ur.getDpto());
			du.setNombre(ur.getNombre());
			du.setPiso(ur.getPiso());
			du.setProvincia(ur.getProvincia());
		}
		if(cliente instanceof UIndustrial){
			du.setTipo("Industrial");
			UIndustrial ui=(UIndustrial)this.cliente;
			du.setAltura(ui.getAltura());
			du.setNombre(ui.getRazsoc());
			du.setCalle(ui.getCalle());
			du.setCodpost(ui.getCodpost());
			du.setCondFisc(ui.getCondFisc());
			du.setCuit(ui.getCuit());
			du.setDpto(ui.getDpto());
			du.setIibb(ui.getIibb());
			du.setPiso(ui.getPiso());
			du.setProvincia(ui.getProvincia());
		}
		return du;
	}

	public void setCliente(Usuario cliente) {
		this.cliente = cliente;
	}

	public float getImporte() {
		return importe;
	}

	public void setImporte(float importe) {
		this.importe = importe;
	}

	public void addItem(ItemFactura itemf){
		itemf.setNroFac(this.nroFac);
		items.add(itemf);
	}
	
	public void setMedicionActual(float m){
		this.medicionactual=m;
	}
	
	public Vector<ItemFactura> getItems(){
		return this.items;
	}
	
	public int getNroCli(){
		return this.cliente.getNro();
	}

	public float getMedicionactual() {
		return medicionactual;
	}

	public Usuario getCliente() {
		return this.cliente;
	}
	
	
}

	

	